package com.sunny.fetch.pojo;

import javax.persistence.*;

@Table(name = "f_cb_basic")
public class FCbBasic {
    @Id
    private Long tid;

    /**
     * 转债代码
     */
    @Column(name = "ts_code")
    private String tsCode;

    /**
     * 转债名称
     */
    @Column(name = "bond_full_name")
    private String bondFullName;

    /**
     * 转债简称
     */
    @Column(name = "bond_short_name")
    private String bondShortName;

    /**
     * 转股申报代码
     */
    @Column(name = "cb_code")
    private String cbCode;

    /**
     * 正股代码
     */
    @Column(name = "stk_code")
    private String stkCode;

    /**
     * 正股简称
     */
    @Column(name = "stk_short_name")
    private String stkShortName;

    /**
     * 发行期限（年）
     */
    private Float maturity;

    /**
     * 面值
     */
    private Float par;

    /**
     * 发行价格
     */
    @Column(name = "issue_price")
    private Float issuePrice;

    /**
     * 发行总额（元）
     */
    @Column(name = "issue_size")
    private Float issueSize;

    /**
     * 债券余额（元）
     */
    @Column(name = "remain_size")
    private Float remainSize;

    /**
     * 起息日期
     */
    @Column(name = "value_date")
    private String valueDate;

    /**
     * 到期日期
     */
    @Column(name = "maturity_date")
    private String maturityDate;

    /**
     * 利率类型
     */
    @Column(name = "rate_type")
    private String rateType;

    /**
     * 票面利率（%）
     */
    @Column(name = "coupon_rate")
    private Float couponRate;

    /**
     * 补偿利率（%）
     */
    @Column(name = "add_rate")
    private Float addRate;

    /**
     * 年付息次数
     */
    @Column(name = "pay_per_year")
    private Integer payPerYear;

    /**
     * 上市日期
     */
    @Column(name = "list_date")
    private String listDate;

    /**
     * 摘牌日
     */
    @Column(name = "delist_date")
    private String delistDate;

    /**
     * 上市地点
     */
    private String exchange;

    /**
     * 转股起始日
     */
    @Column(name = "conv_start_date")
    private String convStartDate;

    /**
     * 转股截止日
     */
    @Column(name = "conv_end_date")
    private String convEndDate;

    /**
     * 初始转股价
     */
    @Column(name = "first_conv_price")
    private Float firstConvPrice;

    /**
     * 最新转股价
     */
    @Column(name = "conv_price")
    private Float convPrice;

    /**
     * 利率说明
     */
    @Column(name = "rate_clause")
    private String rateClause;

    /**
     * 赎回条款
     */
    @Column(name = "put_clause")
    private String putClause;

    /**
     * 到期赎回价格(含税)
     */
    @Column(name = "maturity_put_price")
    private String maturityPutPrice;

    /**
     * 回售条款
     */
    @Column(name = "call_clause")
    private String callClause;

    /**
     * 特别向下修正条款
     */
    @Column(name = "reset_clause")
    private String resetClause;

    /**
     * 转股条款
     */
    @Column(name = "conv_clause")
    private String convClause;

    /**
     * 担保人
     */
    private String guarantor;

    /**
     * 担保方式
     */
    @Column(name = "guarantee_type")
    private String guaranteeType;

    /**
     * 发行信用等级
     */
    @Column(name = "issue_rating")
    private String issueRating;

    /**
     * 最新信用等级
     */
    @Column(name = "newest_rating")
    private String newestRating;

    /**
     * 最新评级机构
     */
    @Column(name = "rating_comp")
    private String ratingComp;

    public FCbBasic(Long tid, String tsCode, String bondFullName, String bondShortName, String cbCode, String stkCode, String stkShortName, Float maturity, Float par, Float issuePrice, Float issueSize, Float remainSize, String valueDate, String maturityDate, String rateType, Float couponRate, Float addRate, Integer payPerYear, String listDate, String delistDate, String exchange, String convStartDate, String convEndDate, Float firstConvPrice, Float convPrice, String rateClause, String putClause, String maturityPutPrice, String callClause, String resetClause, String convClause, String guarantor, String guaranteeType, String issueRating, String newestRating, String ratingComp) {
        this.tid = tid;
        this.tsCode = tsCode;
        this.bondFullName = bondFullName;
        this.bondShortName = bondShortName;
        this.cbCode = cbCode;
        this.stkCode = stkCode;
        this.stkShortName = stkShortName;
        this.maturity = maturity;
        this.par = par;
        this.issuePrice = issuePrice;
        this.issueSize = issueSize;
        this.remainSize = remainSize;
        this.valueDate = valueDate;
        this.maturityDate = maturityDate;
        this.rateType = rateType;
        this.couponRate = couponRate;
        this.addRate = addRate;
        this.payPerYear = payPerYear;
        this.listDate = listDate;
        this.delistDate = delistDate;
        this.exchange = exchange;
        this.convStartDate = convStartDate;
        this.convEndDate = convEndDate;
        this.firstConvPrice = firstConvPrice;
        this.convPrice = convPrice;
        this.rateClause = rateClause;
        this.putClause = putClause;
        this.maturityPutPrice = maturityPutPrice;
        this.callClause = callClause;
        this.resetClause = resetClause;
        this.convClause = convClause;
        this.guarantor = guarantor;
        this.guaranteeType = guaranteeType;
        this.issueRating = issueRating;
        this.newestRating = newestRating;
        this.ratingComp = ratingComp;
    }

    public FCbBasic() {
        super();
    }

    /**
     * @return tid
     */
    public Long getTid() {
        return tid;
    }

    /**
     * @param tid
     */
    public void setTid(Long tid) {
        this.tid = tid;
    }

    /**
     * 获取转债代码
     *
     * @return ts_code - 转债代码
     */
    public String getTsCode() {
        return tsCode;
    }

    /**
     * 设置转债代码
     *
     * @param tsCode 转债代码
     */
    public void setTsCode(String tsCode) {
        this.tsCode = tsCode;
    }

    /**
     * 获取转债名称
     *
     * @return bond_full_name - 转债名称
     */
    public String getBondFullName() {
        return bondFullName;
    }

    /**
     * 设置转债名称
     *
     * @param bondFullName 转债名称
     */
    public void setBondFullName(String bondFullName) {
        this.bondFullName = bondFullName;
    }

    /**
     * 获取转债简称
     *
     * @return bond_short_name - 转债简称
     */
    public String getBondShortName() {
        return bondShortName;
    }

    /**
     * 设置转债简称
     *
     * @param bondShortName 转债简称
     */
    public void setBondShortName(String bondShortName) {
        this.bondShortName = bondShortName;
    }

    /**
     * 获取转股申报代码
     *
     * @return cb_code - 转股申报代码
     */
    public String getCbCode() {
        return cbCode;
    }

    /**
     * 设置转股申报代码
     *
     * @param cbCode 转股申报代码
     */
    public void setCbCode(String cbCode) {
        this.cbCode = cbCode;
    }

    /**
     * 获取正股代码
     *
     * @return stk_code - 正股代码
     */
    public String getStkCode() {
        return stkCode;
    }

    /**
     * 设置正股代码
     *
     * @param stkCode 正股代码
     */
    public void setStkCode(String stkCode) {
        this.stkCode = stkCode;
    }

    /**
     * 获取正股简称
     *
     * @return stk_short_name - 正股简称
     */
    public String getStkShortName() {
        return stkShortName;
    }

    /**
     * 设置正股简称
     *
     * @param stkShortName 正股简称
     */
    public void setStkShortName(String stkShortName) {
        this.stkShortName = stkShortName;
    }

    /**
     * 获取发行期限（年）
     *
     * @return maturity - 发行期限（年）
     */
    public Float getMaturity() {
        return maturity;
    }

    /**
     * 设置发行期限（年）
     *
     * @param maturity 发行期限（年）
     */
    public void setMaturity(Float maturity) {
        this.maturity = maturity;
    }

    /**
     * 获取面值
     *
     * @return par - 面值
     */
    public Float getPar() {
        return par;
    }

    /**
     * 设置面值
     *
     * @param par 面值
     */
    public void setPar(Float par) {
        this.par = par;
    }

    /**
     * 获取发行价格
     *
     * @return issue_price - 发行价格
     */
    public Float getIssuePrice() {
        return issuePrice;
    }

    /**
     * 设置发行价格
     *
     * @param issuePrice 发行价格
     */
    public void setIssuePrice(Float issuePrice) {
        this.issuePrice = issuePrice;
    }

    /**
     * 获取发行总额（元）
     *
     * @return issue_size - 发行总额（元）
     */
    public Float getIssueSize() {
        return issueSize;
    }

    /**
     * 设置发行总额（元）
     *
     * @param issueSize 发行总额（元）
     */
    public void setIssueSize(Float issueSize) {
        this.issueSize = issueSize;
    }

    /**
     * 获取债券余额（元）
     *
     * @return remain_size - 债券余额（元）
     */
    public Float getRemainSize() {
        return remainSize;
    }

    /**
     * 设置债券余额（元）
     *
     * @param remainSize 债券余额（元）
     */
    public void setRemainSize(Float remainSize) {
        this.remainSize = remainSize;
    }

    /**
     * 获取起息日期
     *
     * @return value_date - 起息日期
     */
    public String getValueDate() {
        return valueDate;
    }

    /**
     * 设置起息日期
     *
     * @param valueDate 起息日期
     */
    public void setValueDate(String valueDate) {
        this.valueDate = valueDate;
    }

    /**
     * 获取到期日期
     *
     * @return maturity_date - 到期日期
     */
    public String getMaturityDate() {
        return maturityDate;
    }

    /**
     * 设置到期日期
     *
     * @param maturityDate 到期日期
     */
    public void setMaturityDate(String maturityDate) {
        this.maturityDate = maturityDate;
    }

    /**
     * 获取利率类型
     *
     * @return rate_type - 利率类型
     */
    public String getRateType() {
        return rateType;
    }

    /**
     * 设置利率类型
     *
     * @param rateType 利率类型
     */
    public void setRateType(String rateType) {
        this.rateType = rateType;
    }

    /**
     * 获取票面利率（%）
     *
     * @return coupon_rate - 票面利率（%）
     */
    public Float getCouponRate() {
        return couponRate;
    }

    /**
     * 设置票面利率（%）
     *
     * @param couponRate 票面利率（%）
     */
    public void setCouponRate(Float couponRate) {
        this.couponRate = couponRate;
    }

    /**
     * 获取补偿利率（%）
     *
     * @return add_rate - 补偿利率（%）
     */
    public Float getAddRate() {
        return addRate;
    }

    /**
     * 设置补偿利率（%）
     *
     * @param addRate 补偿利率（%）
     */
    public void setAddRate(Float addRate) {
        this.addRate = addRate;
    }

    /**
     * 获取年付息次数
     *
     * @return pay_per_year - 年付息次数
     */
    public Integer getPayPerYear() {
        return payPerYear;
    }

    /**
     * 设置年付息次数
     *
     * @param payPerYear 年付息次数
     */
    public void setPayPerYear(Integer payPerYear) {
        this.payPerYear = payPerYear;
    }

    /**
     * 获取上市日期
     *
     * @return list_date - 上市日期
     */
    public String getListDate() {
        return listDate;
    }

    /**
     * 设置上市日期
     *
     * @param listDate 上市日期
     */
    public void setListDate(String listDate) {
        this.listDate = listDate;
    }

    /**
     * 获取摘牌日
     *
     * @return delist_date - 摘牌日
     */
    public String getDelistDate() {
        return delistDate;
    }

    /**
     * 设置摘牌日
     *
     * @param delistDate 摘牌日
     */
    public void setDelistDate(String delistDate) {
        this.delistDate = delistDate;
    }

    /**
     * 获取上市地点
     *
     * @return exchange - 上市地点
     */
    public String getExchange() {
        return exchange;
    }

    /**
     * 设置上市地点
     *
     * @param exchange 上市地点
     */
    public void setExchange(String exchange) {
        this.exchange = exchange;
    }

    /**
     * 获取转股起始日
     *
     * @return conv_start_date - 转股起始日
     */
    public String getConvStartDate() {
        return convStartDate;
    }

    /**
     * 设置转股起始日
     *
     * @param convStartDate 转股起始日
     */
    public void setConvStartDate(String convStartDate) {
        this.convStartDate = convStartDate;
    }

    /**
     * 获取转股截止日
     *
     * @return conv_end_date - 转股截止日
     */
    public String getConvEndDate() {
        return convEndDate;
    }

    /**
     * 设置转股截止日
     *
     * @param convEndDate 转股截止日
     */
    public void setConvEndDate(String convEndDate) {
        this.convEndDate = convEndDate;
    }

    /**
     * 获取初始转股价
     *
     * @return first_conv_price - 初始转股价
     */
    public Float getFirstConvPrice() {
        return firstConvPrice;
    }

    /**
     * 设置初始转股价
     *
     * @param firstConvPrice 初始转股价
     */
    public void setFirstConvPrice(Float firstConvPrice) {
        this.firstConvPrice = firstConvPrice;
    }

    /**
     * 获取最新转股价
     *
     * @return conv_price - 最新转股价
     */
    public Float getConvPrice() {
        return convPrice;
    }

    /**
     * 设置最新转股价
     *
     * @param convPrice 最新转股价
     */
    public void setConvPrice(Float convPrice) {
        this.convPrice = convPrice;
    }

    /**
     * 获取利率说明
     *
     * @return rate_clause - 利率说明
     */
    public String getRateClause() {
        return rateClause;
    }

    /**
     * 设置利率说明
     *
     * @param rateClause 利率说明
     */
    public void setRateClause(String rateClause) {
        this.rateClause = rateClause;
    }

    /**
     * 获取赎回条款
     *
     * @return put_clause - 赎回条款
     */
    public String getPutClause() {
        return putClause;
    }

    /**
     * 设置赎回条款
     *
     * @param putClause 赎回条款
     */
    public void setPutClause(String putClause) {
        this.putClause = putClause;
    }

    /**
     * 获取到期赎回价格(含税)
     *
     * @return maturity_put_price - 到期赎回价格(含税)
     */
    public String getMaturityPutPrice() {
        return maturityPutPrice;
    }

    /**
     * 设置到期赎回价格(含税)
     *
     * @param maturityPutPrice 到期赎回价格(含税)
     */
    public void setMaturityPutPrice(String maturityPutPrice) {
        this.maturityPutPrice = maturityPutPrice;
    }

    /**
     * 获取回售条款
     *
     * @return call_clause - 回售条款
     */
    public String getCallClause() {
        return callClause;
    }

    /**
     * 设置回售条款
     *
     * @param callClause 回售条款
     */
    public void setCallClause(String callClause) {
        this.callClause = callClause;
    }

    /**
     * 获取特别向下修正条款
     *
     * @return reset_clause - 特别向下修正条款
     */
    public String getResetClause() {
        return resetClause;
    }

    /**
     * 设置特别向下修正条款
     *
     * @param resetClause 特别向下修正条款
     */
    public void setResetClause(String resetClause) {
        this.resetClause = resetClause;
    }

    /**
     * 获取转股条款
     *
     * @return conv_clause - 转股条款
     */
    public String getConvClause() {
        return convClause;
    }

    /**
     * 设置转股条款
     *
     * @param convClause 转股条款
     */
    public void setConvClause(String convClause) {
        this.convClause = convClause;
    }

    /**
     * 获取担保人
     *
     * @return guarantor - 担保人
     */
    public String getGuarantor() {
        return guarantor;
    }

    /**
     * 设置担保人
     *
     * @param guarantor 担保人
     */
    public void setGuarantor(String guarantor) {
        this.guarantor = guarantor;
    }

    /**
     * 获取担保方式
     *
     * @return guarantee_type - 担保方式
     */
    public String getGuaranteeType() {
        return guaranteeType;
    }

    /**
     * 设置担保方式
     *
     * @param guaranteeType 担保方式
     */
    public void setGuaranteeType(String guaranteeType) {
        this.guaranteeType = guaranteeType;
    }

    /**
     * 获取发行信用等级
     *
     * @return issue_rating - 发行信用等级
     */
    public String getIssueRating() {
        return issueRating;
    }

    /**
     * 设置发行信用等级
     *
     * @param issueRating 发行信用等级
     */
    public void setIssueRating(String issueRating) {
        this.issueRating = issueRating;
    }

    /**
     * 获取最新信用等级
     *
     * @return newest_rating - 最新信用等级
     */
    public String getNewestRating() {
        return newestRating;
    }

    /**
     * 设置最新信用等级
     *
     * @param newestRating 最新信用等级
     */
    public void setNewestRating(String newestRating) {
        this.newestRating = newestRating;
    }

    /**
     * 获取最新评级机构
     *
     * @return rating_comp - 最新评级机构
     */
    public String getRatingComp() {
        return ratingComp;
    }

    /**
     * 设置最新评级机构
     *
     * @param ratingComp 最新评级机构
     */
    public void setRatingComp(String ratingComp) {
        this.ratingComp = ratingComp;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", tid=").append(tid);
        sb.append(", tsCode=").append(tsCode);
        sb.append(", bondFullName=").append(bondFullName);
        sb.append(", bondShortName=").append(bondShortName);
        sb.append(", cbCode=").append(cbCode);
        sb.append(", stkCode=").append(stkCode);
        sb.append(", stkShortName=").append(stkShortName);
        sb.append(", maturity=").append(maturity);
        sb.append(", par=").append(par);
        sb.append(", issuePrice=").append(issuePrice);
        sb.append(", issueSize=").append(issueSize);
        sb.append(", remainSize=").append(remainSize);
        sb.append(", valueDate=").append(valueDate);
        sb.append(", maturityDate=").append(maturityDate);
        sb.append(", rateType=").append(rateType);
        sb.append(", couponRate=").append(couponRate);
        sb.append(", addRate=").append(addRate);
        sb.append(", payPerYear=").append(payPerYear);
        sb.append(", listDate=").append(listDate);
        sb.append(", delistDate=").append(delistDate);
        sb.append(", exchange=").append(exchange);
        sb.append(", convStartDate=").append(convStartDate);
        sb.append(", convEndDate=").append(convEndDate);
        sb.append(", firstConvPrice=").append(firstConvPrice);
        sb.append(", convPrice=").append(convPrice);
        sb.append(", rateClause=").append(rateClause);
        sb.append(", putClause=").append(putClause);
        sb.append(", maturityPutPrice=").append(maturityPutPrice);
        sb.append(", callClause=").append(callClause);
        sb.append(", resetClause=").append(resetClause);
        sb.append(", convClause=").append(convClause);
        sb.append(", guarantor=").append(guarantor);
        sb.append(", guaranteeType=").append(guaranteeType);
        sb.append(", issueRating=").append(issueRating);
        sb.append(", newestRating=").append(newestRating);
        sb.append(", ratingComp=").append(ratingComp);
        sb.append("]");
        return sb.toString();
    }
}